package com.fimdomes.services;

import static org.junit.Assert.*;
import com.fimdomes.models.*;

import org.joda.time.DateTime;
import org.junit.Test;




public class _CalculadoraDeDespesasTest {

	@Test
	public void DeveCalcularTotalDeDespesas(){
		Mes mesatual = new Mes(DateTime.now());
		Despesa despesa1 = new Despesa();
		Despesa despesa2 = new Despesa();
		
		despesa1.setNome("despesa1");
		despesa1.setValor(100.0);
		despesa1.setVencimento(DateTime.now());
		mesatual.adicionaDespesa(despesa1);
		
		despesa2.setNome("despesa2");
		despesa2.setValor(130.0);
		despesa2.setVencimento(DateTime.now());
		mesatual.adicionaDespesa(despesa2);
		
		CalculadoraDeDespesas service = new CalculadoraDeDespesas();
		assertEquals(230.0, service.TotalDeDespesas(mesatual), 0.0001);
	}
	@Test
	public void TotalDeveSerZeroSeNaoTemDespesas(){
		Mes mesatual = new Mes(DateTime.now());
		
				
		CalculadoraDeDespesas calcula = new CalculadoraDeDespesas();
		assertEquals(0, calcula.TotalDeDespesas(mesatual), 0.0001);
	}
	
	@Test
	public void DeveRetornarTotalDeDespesasFixas(){
		Mes mesatual = new Mes(DateTime.now());
		
		Despesa despesa1 = new Despesa();
		Despesa despesa2 = new Despesa();
		
		
		despesa1.setNome("despesa1");
		despesa1.setValor(100.0);
		despesa1.setVencimento(DateTime.now());
		mesatual.adicionaDespesaFixa(despesa1);
		
		despesa2.setNome("despesa2");
		despesa2.setValor(130.0);
		despesa2.setVencimento(DateTime.now());
		mesatual.adicionaDespesa(despesa2);
		
				
		CalculadoraDeDespesas calcula = new CalculadoraDeDespesas();
		assertEquals(100, calcula.TotalDeDespesasFixas(mesatual), 0.0001);
	}
}


